fişa disciplinei
1. Date despre program
1.1 Instituţia de învăţământ superior	Universitatea Babeş-Bolyai Cluj-Napoca	
1.2 Facultatea	Facultatea de Matematică şi Informatică	
1.3 Departamentul	Departamentul de Informatică	
1.4 Domeniul de studii	Informatică	
1.5 Ciclul de studii	Master	
1.6 Programul de studiu / Calificarea	High Performance Computing  and Big Data Analytics/
Calcul de Inalta Performanta si analiza volumelor mari de date	
2. Date despre disciplină

2.1 Denumirea disciplinei	Algoritmi distribuiţi şi tehnici avansate în sisteme distribuite	
2.2 Titularul activităţilor de curs	Lect. dr. Rareş Florin Boian	
2.3 Titularul activităţilor de seminar	Lect. dr. Rareş Florin Boian	
2.4 Anul de studiu	2	2.5 Semestrul	2	2.6. Tipul de evaluare	E	2.7 Regimul disciplinei	Opţional	
3. Timpul total estimat (ore pe semestru al activităţilor didactice)

3.1 Număr de ore pe săptămână	4	Din care: 3.2 curs	2	3.3 seminar/laborator	2	
3.4 Total ore din planul de învăţământ	48	Din care: 3.5 curs	24	3.6 seminar/laborator	24	
Distribuţia fondului de timp:	ore	
Studiul după manual, suport de curs, bibliografie şi notiţe	34	
Documentare suplimentară în bibliotecă, pe platformele electronice de specialitate şi pe teren	24	
Pregătire seminarii/laboratoare, teme, referate, portofolii şi eseuri	34	
Tutoriat	20	
Examinări 	10	
Alte activităţi: ..................	-	
3.7 Total ore studiu individual	122	
3.8 Total ore pe semestru	170	
3.9 Numărul de credite	7	
4. Precondiţii (acolo unde este cazul)

4.1 de curriculum	•		
4.2 de competenţe	•		

5. Condiţii (acolo unde este cazul)
5.1 De desfăşurare a cursului	•	Cerintele specifice sunt postate la:
o	http://www.cs.ubbcluj.ro/~rares/course/daatds/	
5.2  De desfăşurare a seminarului/laboratorului	•	Laboratoare cu acces la sisteme de operare Unix şi Windows, cu acces individual pe bază de user şi parolă
•	Cerintele specifice sunt postate la:
o	http://www.cs.ubbcluj.ro/~rares/course/daatds/	

6. Competenţele specifice acumulate
Competenţe profesionale	•	Definirea noţiunilor, conceptelor, teoriilor şi modelelor de bază din domeniul algoritmilor distribuiţi.
•	Analiza critică şi utilizarea principiilor, metodelor şi tehnicilor de lucru pentru evaluarea cantitativă şi calitativă a algoritmilor aplicabili unei probleme distribuite date.
•	Aplicarea conceptelor şi teoriilor fundamentale din domeniul sistemelor distribuite şi algoritmilor distribuiţi pentru elaborarea de proiecte profesionale
•	Abilitatea de a rezolva probleme de tip high level privind sistemele distribuite	
Competenţe transversale	•	Executarea sarcinilor solicitate conform cerintelor precizate si în termenele impuse, cu respectarea normelor de etica profesionala si de conduita morala
•	Informarea si documentarea permanenta în domeniul sau de activitate în limba româna şi în limba engleză
•	Preocuparea pentru perfecţionarea rezultatelor activităţii profesionale prin implicarea în activităţile desfăşurate	

7. Obiectivele disciplinei (reieşind din grila competenţelor acumulate)
7.1 Obiectivul general al disciplinei	•	Cunoaşterea conceptelor de bază din domeniul algoritmilor distribuiţi
•	Dobândirea abilităţilor de implementare a algoritmilor distribuiţi .	
7.2 Obiectivele specifice

	•	Abstracţii folosite în modelarea algoritmilor distribuţi
•	Modele teoretice de sisteme distribuite
•	Algorutmi de broadcast
•	Algoritmi de memorie partajată distribuită
•	Algoritmi de consens distribuit	

8. Conţinuturi
8.1 Curs	Metode de predare	Observaţii	
Săpt. 1-2 Modelarea sistemelor distribuite folosid o stivă de abstracţii. Abstracţii: procese, legături de comunicare, detectarea opririi proceselor la distanţă.Modele de sisteme distribuite: Fail-Stop, fail-Noisy, fail-Silent, fail-Recovery, 	Expunere: descriere, explicaţii, exemple practice, demonstraţii, discuţii pe studii de caz.		
Sapt. 3-4 Algoritmi de broadcast: Best-Effort Broadcast, Reliable broadcast (regular, lazy, eager)	Expunere: descriere, explicaţii, exemple practice, demonstraţii, discuţii pe studii de caz.		
Săpt. 5-6 Uniform Reliable Broadcast. Probabilistic Broadcast. 	Expunere: descriere, explicaţii, exemple practice, demonstraţii, discuţii pe studii de caz.		
Săpt. 7-8 Shared Memory: (1,N) Regular Registers. (1,1) Atomic Registers.	Expunere: descriere, explicaţii, exemple practice, demonstraţii, discuţii pe studii de caz.		
Săpt. 9-10 Shared Memory: (1, N) Atomic registers. (N,N) Atomic Registers.	Expunere: descriere, explicaţii, exemple practice, demonstraţii, discuţii pe studii de caz.		
Săpt. 11-12 Consensus: Regular Consensus. Uniform Consenus. Introduction to Algorithms in Byzantine Distribtued Systems.	Expunere: descriere, explicaţii, exemple practice, demonstraţii, discuţii pe studii de caz.		
			
Bibliografie
1.	BARNABY T. Distributed .NET Programming in C#. Apress, 2002
2.	BOIAN F.M. Programarea distribuita in internet; metode si aplicatii. Ed. Albastra, Cluj, 1997
3.	CHRISTIAN CACHIN, RACHID GUERRAOUI, LUIS RODRIGUES, Introduction to Reliable and Secure Distributed Programming, Second Edition, Springer, 2011
4.	HUGHES C. HUGHES T. Parallel and Distributed Programming Using C++. Addison Wesley, 2003
5.	LANG U. SCHREINER R. Developing Secure Distributed Systems with CORBA. Artech House, 2002
6.	LYNCH N.A. Distributed Algorithms. Morgan Kaufmann Pub. 1996
7.	TANENBAUM A.S. Distributed Operating Systems. Prentice Hall, 2000
8.	TEL G. Introduction to Distributed Algorithms. Cambridge Press, 1994
9.	WEIKUM G. VOSSEN G. Transactional Information Systems: theory, algorithms, and the practice of concurrency control and recovery. Morgan Kaufmann Pub. 2002	
8.2 Seminar / laborator	Metode de predare	Observaţii	
Proiectarea simulatorului distribuit în care studenţii vor implementa trei algoritmi din cei predaţi la curs	Explicaţii, exemplificări, dialog, studii de caz		
Discuţia detaliata a implementării primului algoritm. Stabilirea abstracţiilor necesare.	Explicaţii, exemplificări, dialog, studii de caz		
Discuţia detaliata a implementării celui de-al doilea algoritm. Stabilirea abstracţiilor necesare.	Explicaţii, exemplificări, dialog, studii de caz		
Discuţia detaliata a implementării celui de-al treilea algoritm. Stabilirea abstracţiilor necesare.	Explicaţii, exemplificări, dialog, studii de caz		
			
Bibliografie
1.	BARNABY T. Distributed .NET Programming in C#. Apress, 2002
2.	BOIAN F.M. Programarea distribuita in internet; metode si aplicatii. Ed. Albastra, Cluj, 1997
3.	CHRISTIAN CACHIN, RACHID GUERRAOUI, LUIS RODRIGUES, Introduction to Reliable and Secure Distributed Programming, Second Edition, Springer, 2011	

9. Coroborarea conţinuturilor disciplinei cu aşteptările reprezentanţilor comunităţii epistemice, asociaţiilor profesionale şi angajatori reprezentativi din domeniul aferent programului
•	Prin insusirea conceptelor teoretico-metodologice si abordarea aspectelor practice incluse in disciplina Tehnologii şi platforme Java pentru aplicaţii distribuite, studentii dobandesc un bagaj de cunostinte consistent, in concordanta cu competentele partiale cerute pentru ocupatiile posibile prevazute in Grila 1 – RNCIS
•	Cursul respectă IEEE and ACM Curriculla Recommendations for Computer Science studies. 
•	Cursul există în programa de studii a universităţilor şi facultăţilor de profil din România
•	Conţinutul cursului este foarte bine apreciat de către companiile de software care au ca şi angajaţi absolvenţi ai acestui curs	

10. Evaluare
Tip activitate	10.1 Criterii de evaluare	10.2 metode de evaluare	10.3 Pondere din nota finală	
10.4 Curs	Examen scris		40%	
10.5 Seminar/laborator	Proiect practic: simulator de sistem distribuit şi implementarea in cadrul lui a trei algoritmi distribuţi		40%	
	Referat		20%	
10.6 Standard minim de performanţă	
•	Fiecare dintre cele 3 componente ale notei finale trebuie să fie trecută cu nota minimum 5	

Data completării		Semnătura titularului de curs		Semnătura titularului de seminar
21.09.2013			Lect. dr. Rares Florin Boian		Prof. dr. Rares Florin Boian

Data avizării în departament			Semnătura directorului de departament
...........................................			Prof. dr. Bazil Pârv